package com.zone.service.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.zone.common.core.annotation.Excel;
import com.zone.common.core.web.domain.BaseEntity;

/**
 * atm任务信息列对象 zone_atm_task
 * 
 * @author liuyang
 * @date 2025-11-15
 */
public class AtmTask extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID，自增 */
    private Long id;

    /** 任务类型 */
    @Excel(name = "任务类型")
    private Long taskType;

    /** 执行班次 */
    @Excel(name = "执行班次")
    private String taskShift;

    /** 任务执行日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "任务执行日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date taskDate;

    /** 开锁方式 */
    @Excel(name = "开锁方式")
    private String lock;

    /** 可开锁次数 */
    @Excel(name = "可开锁次数")
    private String lockAllowTimes;

    /** 加钞金额 */
    @Excel(name = "加钞金额")
    private BigDecimal amount;

    /** 加钞券别及金额 */
    @Excel(name = "加钞券别及金额")
    private String denomList;

    /** 任务状态（未完成、已取消、已分配、已完成） */
    @Excel(name = "任务状态", readConverterExp = "未=完成、已取消、已分配、已完成")
    private String status;

    /** 取消类型（暂不知细节） */
    @Excel(name = "取消类型", readConverterExp = "暂=不知细节")
    private String cancelType;

    /** 取消原因 */
    @Excel(name = "取消原因")
    private String cancelReason;

    /** 设备id，关联设备表 */
    @Excel(name = "设备id，关联设备表")
    private Long deviceId;

    /** 银行报修时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "银行报修时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date timeFromBank;

    /** 是否紧急任务 */
    @Excel(name = "是否紧急任务")
    private String important;

    /** 是否清机（是/否） */
    @Excel(name = "是否清机", readConverterExp = "是=/否")
    private String needClearing;

    /** 物品，关联zone_supplies表，用逗号分隔 */
    @Excel(name = "物品，关联zone_supplies表，用逗号分隔")
    private String suppliersList;

    /** 上次任务备注描述 */
    @Excel(name = "上次任务备注描述")
    private String lastRemark;

    /** 锁具状态（未开锁/已闭锁） */
    @Excel(name = "锁具状态", readConverterExp = "未=开锁/已闭锁")
    private String lockStatus;

    /** 已开锁次数 */
    @Excel(name = "已开锁次数")
    private String lockOpenTimes;

    /** 已闭锁次数 */
    @Excel(name = "已闭锁次数")
    private String lockCloseTimes;

    /** 回线钞箱个数 */
    @Excel(name = "回线钞箱个数")
    private Long returnBoxCounts;

    /** 额外任务到达时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "额外任务到达时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date extraTaskTime;

    /** 额外任务离开时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "额外任务离开时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date extraTaskLeaveTime;

    /** 推送任务时间 */
    private Date deliverTime;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setTaskType(Long taskType) 
    {
        this.taskType = taskType;
    }

    public Long getTaskType() 
    {
        return taskType;
    }

    public void setTaskShift(String taskShift) 
    {
        this.taskShift = taskShift;
    }

    public String getTaskShift() 
    {
        return taskShift;
    }

    public void setTaskDate(Date taskDate) 
    {
        this.taskDate = taskDate;
    }

    public Date getTaskDate() 
    {
        return taskDate;
    }

    public void setLock(String lock) 
    {
        this.lock = lock;
    }

    public String getLock() 
    {
        return lock;
    }

    public void setLockAllowTimes(String lockAllowTimes) 
    {
        this.lockAllowTimes = lockAllowTimes;
    }

    public String getLockAllowTimes() 
    {
        return lockAllowTimes;
    }

    public void setAmount(BigDecimal amount) 
    {
        this.amount = amount;
    }

    public BigDecimal getAmount() 
    {
        return amount;
    }

    public void setDenomList(String denomList) 
    {
        this.denomList = denomList;
    }

    public String getDenomList() 
    {
        return denomList;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public void setCancelType(String cancelType) 
    {
        this.cancelType = cancelType;
    }

    public String getCancelType() 
    {
        return cancelType;
    }

    public void setCancelReason(String cancelReason) 
    {
        this.cancelReason = cancelReason;
    }

    public String getCancelReason() 
    {
        return cancelReason;
    }

    public void setDeviceId(Long deviceId) 
    {
        this.deviceId = deviceId;
    }

    public Long getDeviceId() 
    {
        return deviceId;
    }

    public void setTimeFromBank(Date timeFromBank) 
    {
        this.timeFromBank = timeFromBank;
    }

    public Date getTimeFromBank() 
    {
        return timeFromBank;
    }

    public void setImportant(String important) 
    {
        this.important = important;
    }

    public String getImportant() 
    {
        return important;
    }

    public void setNeedClearing(String needClearing) 
    {
        this.needClearing = needClearing;
    }

    public String getNeedClearing() 
    {
        return needClearing;
    }

    public void setSuppliersList(String suppliersList) 
    {
        this.suppliersList = suppliersList;
    }

    public String getSuppliersList() 
    {
        return suppliersList;
    }

    public void setLastRemark(String lastRemark) 
    {
        this.lastRemark = lastRemark;
    }

    public String getLastRemark() 
    {
        return lastRemark;
    }

    public void setLockStatus(String lockStatus) 
    {
        this.lockStatus = lockStatus;
    }

    public String getLockStatus() 
    {
        return lockStatus;
    }

    public void setLockOpenTimes(String lockOpenTimes) 
    {
        this.lockOpenTimes = lockOpenTimes;
    }

    public String getLockOpenTimes() 
    {
        return lockOpenTimes;
    }

    public void setLockCloseTimes(String lockCloseTimes) 
    {
        this.lockCloseTimes = lockCloseTimes;
    }

    public String getLockCloseTimes() 
    {
        return lockCloseTimes;
    }

    public void setReturnBoxCounts(Long returnBoxCounts) 
    {
        this.returnBoxCounts = returnBoxCounts;
    }

    public Long getReturnBoxCounts() 
    {
        return returnBoxCounts;
    }

    public void setExtraTaskTime(Date extraTaskTime) 
    {
        this.extraTaskTime = extraTaskTime;
    }

    public Date getExtraTaskTime() 
    {
        return extraTaskTime;
    }

    public void setExtraTaskLeaveTime(Date extraTaskLeaveTime) 
    {
        this.extraTaskLeaveTime = extraTaskLeaveTime;
    }

    public Date getExtraTaskLeaveTime() 
    {
        return extraTaskLeaveTime;
    }

    public void setDeliverTime(Date deliverTime) 
    {
        this.deliverTime = deliverTime;
    }

    public Date getDeliverTime() 
    {
        return deliverTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("taskType", getTaskType())
            .append("taskShift", getTaskShift())
            .append("taskDate", getTaskDate())
            .append("lock", getLock())
            .append("lockAllowTimes", getLockAllowTimes())
            .append("amount", getAmount())
            .append("denomList", getDenomList())
            .append("status", getStatus())
            .append("cancelType", getCancelType())
            .append("cancelReason", getCancelReason())
            .append("deviceId", getDeviceId())
            .append("timeFromBank", getTimeFromBank())
            .append("important", getImportant())
            .append("needClearing", getNeedClearing())
            .append("suppliersList", getSuppliersList())
            .append("remark", getRemark())
            .append("lastRemark", getLastRemark())
            .append("lockStatus", getLockStatus())
            .append("lockOpenTimes", getLockOpenTimes())
            .append("lockCloseTimes", getLockCloseTimes())
            .append("returnBoxCounts", getReturnBoxCounts())
            .append("extraTaskTime", getExtraTaskTime())
            .append("extraTaskLeaveTime", getExtraTaskLeaveTime())
            .append("createTime", getCreateTime())
            .append("createBy", getCreateBy())
            .append("deliverTime", getDeliverTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
